﻿//начало текста модуля

///////////////////////////////////////////////////
//Служебные функции и процедуры
///////////////////////////////////////////////////

&НаКлиенте
// контекст фреймворка Vanessa-Behavior
Перем Ванесса;
 
&НаКлиенте
// Структура, в которой хранится состояние сценария между выполнением шагов. Очищается перед выполнением каждого сценария.
Перем Контекст Экспорт;
 
&НаКлиенте
// Структура, в которой можно хранить служебные данные между запусками сценариев. Существует, пока открыта форма Vanessa-Behavior.
Перем КонтекстСохраняемый Экспорт;

&НаКлиенте
// Служебная функция.
Функция ДобавитьШагВМассивТестов(МассивТестов,Снипет,ИмяПроцедуры,ПредставлениеТеста = Неопределено,Транзакция = Неопределено,Параметр = Неопределено)
	Структура = Новый Структура;
	Структура.Вставить("Снипет",Снипет);
	Структура.Вставить("ИмяПроцедуры",ИмяПроцедуры);
	Структура.Вставить("ИмяПроцедуры",ИмяПроцедуры);
	Структура.Вставить("ПредставлениеТеста",ПредставлениеТеста);
	Структура.Вставить("Транзакция",Транзакция);
	Структура.Вставить("Параметр",Параметр);
	МассивТестов.Добавить(Структура);
КонецФункции

&НаКлиенте
// Функция экспортирует список шагов, которые реализованы в данной внешней обработке.
Функция ПолучитьСписокТестов(КонтекстФреймворкаBDD) Экспорт
	Ванесса = КонтекстФреймворкаBDD;
	
	ВсеТесты = Новый Массив;

	//описание параметров
	//ДобавитьШагВМассивТестов(ВсеТесты,Снипет,ИмяПроцедуры,ПредставлениеТеста,Транзакция,Параметр);

	ДобавитьШагВМассивТестов(ВсеТесты,"ЯНажимаюНаКнопкуДиалогаВыбораФайлов()","ЯНажимаюНаКнопкуДиалогаВыбораФайлов","Когда Я нажимаю на кнопку диалога выбора файлов");
	ДобавитьШагВМассивТестов(ВсеТесты,"ВОткрывшемсяОкнеЯУказываюПутьКОбработкеVanessa_behaviorepf()","ВОткрывшемсяОкнеЯУказываюПутьКОбработкеVanessa_behaviorepf","И в открывшемся окне я указываю путь к обработке Vanessa-behavior.epf");
	ДобавитьШагВМассивТестов(ВсеТесты,"ЯНабираюТекст(Парам01)","ЯНабираюТекст","И я набираю текст ""текст""");
	

	Возврат ВсеТесты;
КонецФункции
	
&НаСервере
// Служебная функция.
Функция ПолучитьМакетСервер(ИмяМакета)
	ОбъектСервер = РеквизитФормыВЗначение("Объект");
	Возврат ОбъектСервер.ПолучитьМакет(ИмяМакета);
КонецФункции
	
&НаКлиенте
// Служебная функция для подключения библиотеки создания fixtures.
Функция ПолучитьМакетОбработки(ИмяМакета) Экспорт
	Возврат ПолучитьМакетСервер(ИмяМакета);
КонецФункции



///////////////////////////////////////////////////
//Работа со сценариями
///////////////////////////////////////////////////

&НаКлиенте
// Процедура выполняется перед началом каждого сценария
Процедура ПередНачаломСценария() Экспорт
	
КонецПроцедуры

&НаКлиенте
// Процедура выполняется перед окончанием каждого сценария
Процедура ПередОкончаниемСценария() Экспорт
	
КонецПроцедуры



///////////////////////////////////////////////////
//Реализация шагов
///////////////////////////////////////////////////

&НаКлиенте
//Когда Я нажимаю на кнопку диалога выбора файлов
//@ЯНажимаюНаКнопкуДиалогаВыбораФайлов()
Процедура ЯНажимаюНаКнопкуДиалогаВыбораФайлов() Экспорт
	Результат = Ванесса.ВыполнитьSikuliСкрипт(Ванесса.Объект.КаталогИнструментов + "\tools\Sikuli\OpenDialog.sikuli");
	Ванесса.ПроверитьРавенство(Результат, 0 , "Произошло выполнение скрипта <OpenDialog>");
	
	Ванесса.СделатьДействияПриЗаписиИнструкции("толькоскриншот");
	
	Ванесса.Шаг("И я набираю текст ""#enter""");
	//Ванесса.sleep(2);
	Результат = Ванесса.ВыполнитьSikuliСкрипт(Ванесса.Объект.КаталогИнструментов + "\tools\Sikuli\OpenDialogClick.sikuli");
	Ванесса.ПроверитьРавенство(Результат, 0 , "Произошло выполнение скрипта <OpenDialogClick>");
КонецПроцедуры

&НаКлиенте
//И в открывшемся окне я указываю путь к обработке Vanessa-behavior.epf
//@ВОткрывшемсяОкнеЯУказываюПутьКОбработкеVanessa_behaviorepf()
Процедура ВОткрывшемсяОкнеЯУказываюПутьКОбработкеVanessa_behaviorepf() Экспорт
	Путь = Ванесса.Объект.КаталогИнструментов + "\vanessa-behavior.epf";
	
	Ванесса.Шаг("И я набираю текст""" + Путь + """");
	
	Ванесса.СделатьДействияПриЗаписиИнструкции();
	Ванесса.Шаг("И я набираю текст ""#enter""");
КонецПроцедуры


&НаКлиенте
//И я набираю текст "текст"
//@ЯНабираюТекст(Парам01)
Процедура ЯНабираюТекст(Текст) Экспорт
	ВременыйФайл = ПолучитьИмяВременногоФайла("txt");
	ЗТ = Новый ЗаписьТекста(ВременыйФайл,"UTF-8",,Истина); 
	ЗТ.Записать(Текст); 
	//ЗТ.Записать("#enter"); 
	ЗТ.Закрыть();
	
	Результат = Ванесса.ВыполнитьSikuliСкрипт(Ванесса.Объект.КаталогИнструментов + "\tools\Sikuli\TypeText.sikuli " + ВременыйФайл);
	Ванесса.ПроверитьРавенство(Результат, 0 , "Произошло выполнение скрипта <TypeText>");
КонецПроцедуры


//окончание текста модуля